package entities;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;


@Entity
@Table (name = "Proveedores")
public class Proveedor extends EntidadBase {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int idProveedor;

	@Column(name = "idCUIL")
	private String CUIT;
	private String razonSocial;
	
	@OneToMany (cascade=CascadeType.REMOVE)
	@LazyCollection(LazyCollectionOption.FALSE)
    @JoinColumn(name ="idProveedor")
	private List<OrdenDeCompra> ordenesCompra;
	
	@OneToMany (cascade=CascadeType.REMOVE)
	@LazyCollection(LazyCollectionOption.FALSE)
    @JoinColumn(name ="idProveedor")
	private List<CondicionCompra> condicionesCompra;
	
	@OneToMany (cascade=CascadeType.REMOVE)
	@LazyCollection(LazyCollectionOption.FALSE)
    @JoinColumn(name ="idProveedor")
	private List<DescuentoProveedor> descuentosProv;
	
	@OneToMany (cascade=CascadeType.REMOVE)
	@LazyCollection(LazyCollectionOption.FALSE)
    @JoinColumn(name ="idProveedor")
	private List<ListaPrecio> listasPrecio;

	public Proveedor(){
		this.ordenesCompra = new ArrayList<OrdenDeCompra>();
		this.listasPrecio = new ArrayList<ListaPrecio>();
		this.descuentosProv = new ArrayList<DescuentoProveedor>();
	}

	public String getCUIT() {
		return CUIT;
	}

	public void setCUIT(String cUIT) {
		CUIT = cUIT;
	}

	public String getRazonSocial() {
		return razonSocial;
	}

	public void setRazonSocial(String razonSocial) {
		this.razonSocial = razonSocial;
	}

	public List<OrdenDeCompra> getOrdenesCompra() {
		return ordenesCompra;
	}

	public void setOrdenesCompra(List<OrdenDeCompra> ordenesCompra) {
		this.ordenesCompra = ordenesCompra;
	}

	public List<ListaPrecio> getListasPrecio() {
		return listasPrecio;
	}

	public void setListasPrecio(List<ListaPrecio> listasPrecio) {
		this.listasPrecio = listasPrecio;
	}

	public List<CondicionCompra> getCondicionesCompra() {
		return condicionesCompra;
	}

	public void setCondicionesCompra(List<CondicionCompra> condicionesCompra) {
		this.condicionesCompra = condicionesCompra;
	}

	public List<DescuentoProveedor> getDescuentosProv() {
		return descuentosProv;
	}

	public void setDescuentosProv(List<DescuentoProveedor> descuentosProv) {
		this.descuentosProv = descuentosProv;
	}
	
}
